namespace OasisCiq.Xal
{
    using System.Collections.Generic;
    using System.Collections.Specialized;
    using External;

    /// <summary>
    /// Complex type for internal reuse
    /// </summary>
    public abstract class PremisesType : IExtendedAttributes
    {
        /// <summary>
        /// If Numbers collection is empty at least one element required
        /// </summary>
        public virtual ICollection<PremisesNameElement> NameElements { get; set; }

        /// <summary>
        /// Data associated with the number of the premises.
        /// E.g. House 15, number range, number suffix.
        /// If NameElements collection is empty at least one element required
        /// </summary>
        public virtual ICollection<IdentifierType> Numbers { get; set; }

        public virtual NameValueCollection ExtendedAttributes { get; set; }
    }
}